iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

Insecure Design

前言

在前面介紹了 session、redirect、css 等相關的攻擊手法後,讓我來簡單介紹一下 Insecure Design 吧 ~

何謂 Insecure Design ?

引用自 OWASP 對於 Insecure Design 的介紹:

Insecure design is a broad category representing different weaknesses, expressed as “missing or ineffective control design.”

由上述引言可知:

Insecure Design 是一種 "缺乏或無效的控制設計"。

而 Insecure Design 無法透過完美的實現來修復,因為根據定義,所需的安全控制從未被創建來防禦特定的攻擊。導致不安全設計的因素之一是缺乏正在開發的軟體或系統固有的業務風險分析,因此無法確定需要什麼程度的安全設計。

安全設計需要考量幾點

Step 1 - 分析需求 & 蒐集需要保護的資料資產們

收集並與業務部門協商應用程式的業務需求,包括有關所有資料資產的機密性、完整性、可用性和真實性的保護要求以及預期的業務邏輯。

要從哪邊切入? 從哪裡開始評估並制定相關策略?

這邊介紹一個比較 High level 的評斷標準 - CIA Triad (資安鐵三角)

CIA Triad (資安鐵三角) 有哪些元素 ?

  • C - Confidentiality 機密性

    若要看資料需要經過別人"授權" ( = 沒有經過授權不會看到資料 )

    所以要注意 "不能在未經授權的情況下":

    1. 讓資料被偷看到
    2. 讓資料被竊取
  • I - Integrity 完整性

    為了保持資料完整性,資訊不可以被竄改 ( = 資料需要全部出自於原作者,不可以被更改 )

    需要注意:

    1. 資料不被竄改
    2. 資料不要被惡意刪除
  • A - Availability 可用性

    確保在取得授權的情況下,可以及時讀取或使用資料

    需要注意:

    1. 保持取得授權的使用者在操作系統時能順暢地取得資料

Step 2 - 考量應用程式的暴露程度、是否需要租戶隔離、預算等

  • 考慮應用程式的暴露程度以及是否需要租戶隔離(除了存取控制)。
  • 編制技術要求,包括功能性和非功能性安全要求。
  • 規劃和協商涵蓋所有設計、建造、測試和營運(包括安全活動)的預算。

Step 3 - 進行安全設計

安全設計是一種不斷評估威脅並確保程式碼經過穩健設計和測試以防止已知攻擊方法的文化和方法。

透過綜合考量以下幾點來進行安全設計:

  1. 模擬攻擊 - "威脅建模"
  2. 監測使用者故事並確定流程
  3. 分析預期流和故障流的假設和條件,並確定是否符合理想
  4. 記錄流程並改善

威脅建模

我們在第一點提過 "威脅建模",而什麼是 "威脅建模" 呢?

威脅建模的核心概念是: "站在攻擊者的位置思考",藉此評估應用程式的資安風險和威脅,並且針對風險和威脅制定一個應對措施。

常見的威脅建模方法: STRIDE

STRIDE 分為以下幾種:

以下對於 STRIDE 的對應例子做一些舉例:

  • Spoofing 偽造

    Example:

    冒充其他用戶的帳號、網址偽裝成某個網站

  • Tampering 篡改

    Example:

    修改資料或 code - 修改訂單資訊、篡改封包、篡改程式所需要的動態連結函式庫(Dynamic-Link Library),並植入惡意程式碼

  • Repudiation 抵賴否認:

    Example:

    不承認修改行為、否認發送過某個 Email、拒絕承認瀏覽某個網站。

  • Information disclosure 資訊洩漏:

    Example:

    使用者資訊被洩漏,無論惡意或無意,將重要的客戶資料流出,讓人未經授權使用。

  • Denial of Service 阻斷服務:

    Example:

    DDoS 導致網站不可用,系統無法運作,或是網站無法服務。

  • Elevation of Privilege 提升許可權、未經授權獲取:

    Example:

    將普通用戶提升到管理員,讓遠端一般使用者透過非正常管道提升權限,以至於能夠執行系統管理員才能執行的指令。

今日小心得

今天透過簡單介紹 Insecure Design 來帶出一些簡單的資訊安全評估指標,希望大家能透過這些指標來檢視一些可能的使用者故事,進而找出自己的資安漏洞 XD

不得不說資安真的是一個博大精深的領域,再度燃起我對於資訊的熱情XD 中秋節來繼續好好研究!!!! 一邊吃烤肉(誤

有了這些科普知識後,下次終於可以好好來研究 Auth 相關的安全設計啦!! (普天同慶 /images/emoticon/emoticon07.gif

Reference


上一篇
CSS 相關的攻擊 (下篇之 4)
下一篇
Node.js 安全最佳實踐 - 1 (第三方套件篇)
系列文
從自建漏洞中學習 - 一起填坑吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言